/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package beanView;

import Controlador.Conexion;
import java.io.Serializable;
import java.sql.ResultSet;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.SelectItem;

@ManagedBean
@ViewScoped

public class beansListas implements Serializable{
    private SelectItem[] TipoTitulo= {new SelectItem("P", "Pregrado"),new SelectItem("E", "Especialización"),new SelectItem("M", "Maestría"),new SelectItem("D", "Doctorado")};
    private SelectItem[] Sexo={new SelectItem("M", "Masculino"),new SelectItem("F", "Femenino")};
    private SelectItem[] TipoExperiencia={new SelectItem("DU", "Docente Universitario"),new SelectItem("IV", "Investigación"),new SelectItem("DA", "Dirección Académica"),new SelectItem("PR", "Profesional")};
    private SelectItem[] TipoPonencia= {new SelectItem("N", "Nacional"), new SelectItem("I", "Internacional")};
    private String PaisCed;
    private String DepartamentoCed;
    private String CiudadCed;
    private String PaisNac;
    private String DepartamentoNac;
    private String CiudadNac;
    private String PaisRes;
    private String DepartamentoRes;
    private String CiudadRes;
    private String Ip, Port;
    
    
    public beansListas() {
        Ip = "127.0.0.1";
        Port = "1521";
        PaisCed = "057";
        DepartamentoCed = "91";
        PaisNac = "057";
        DepartamentoNac = "91";
        PaisRes = "057";
        DepartamentoRes = "91";
    }
    
    private SelectItem[] retornapaises(){
        SelectItem[] retorno  = null;
        Conexion c = new Conexion(this.Ip,this.Port);
        ResultSet Resultado = c.getQuery("select id_pais,nombre from paises order by nombre");
        try {
            retorno = new SelectItem[c.getRowCount(Resultado)];
            int i=0;
            while(Resultado.next()){
                retorno[i] = new SelectItem(Resultado.getString(1), Resultado.getString(2));
                i++;
            }
            c.Close();
        } catch (Exception e) { System.out.println("Error: "+e.getMessage());
        }
        return retorno;
    }
    
    private SelectItem[] retornadepartamentos(String Pais){
        SelectItem[] retorno = null;
        Conexion c = new Conexion(this.Ip,this.Port);
        ResultSet Resultado = c.getQuery("SELECT id_dpto,nombre FROM   departamentos where id_pais="+Pais+" order by nombre");
        try {
            retorno = new SelectItem[c.getRowCount(Resultado)];
            int i = 0;
            while (Resultado.next()) {
                retorno[i] = new SelectItem(Resultado.getString(1), Resultado.getString(2));
                i++;
            }
            c.Close();
        } catch (Exception e) {
            System.out.println("Error: "+e.getMessage());
        }
        return retorno;
    }
    
    private SelectItem[] retornaciudades (String Pais, String Departamento){
         SelectItem[] retorno = null;
         Conexion c = new Conexion(this.Ip,this.Port);
        ResultSet Resultado = c.getQuery("SELECT id_ciudad, nombre FROM ciudades where id_pais="+Pais+" and id_dpto="+Departamento+" order by nombre");
        try {
            retorno = new SelectItem[c.getRowCount(Resultado)];
            int i = 0;
            while (Resultado.next()) {
                retorno[i] = new SelectItem(Resultado.getString(1), Resultado.getString(2));
                i++;
            }
            c.Close();
        } catch (Exception e) {
            System.out.println("Error: "+e.getMessage());
        }
         return retorno;
    }
    
// <editor-fold defaultstate="collapsed" desc="Funciones cargas de paises, departamentos y ciudades">  
    public SelectItem[] initpaisesced() {
        return retornapaises();
    }

    public SelectItem[] initdepartamentosced() {
        return retornadepartamentos(PaisCed);
    }

    public SelectItem[] initciudadesced() {
        return retornaciudades(PaisCed, DepartamentoCed);
    }
    
    public SelectItem[] initpaisesnac() {
        return retornapaises();
    }

    public SelectItem[] initdepartamentosnac() {
        return retornadepartamentos(PaisNac);
    }

    public SelectItem[] initciudadesnac() {
        return retornaciudades(PaisNac, DepartamentoNac);
    }
    
    public SelectItem[] initpaisesres() {
        return retornapaises();
    }

    public SelectItem[] initdepartamentosres() {
        return retornadepartamentos(PaisRes);
    }

    public SelectItem[] initciudadesres() {
        return retornaciudades(PaisNac, DepartamentoRes);
    }
    //</editor-fold>
    
    /// Getters y Setters en editor fold.
    
    // <editor-fold defaultstate="collapsed" desc="Getter Y Setter">  

    public String getCiudadRes() {
        return CiudadRes;
    }

    public void setCiudadRes(String CiudadRes) {
        this.CiudadRes = CiudadRes;
    }

    public String getDepartamentoRes() {
        return DepartamentoRes;
    }

    public void setDepartamentoRes(String DepartamentoRes) {
        this.DepartamentoRes = DepartamentoRes;
    }

    public String getPaisRes() {
        return PaisRes;
    }

    public void setPaisRes(String PaisRes) {
        this.PaisRes = PaisRes;
    }
    
    public String getCiudadNac() {
        return CiudadNac;
    }

    public void setCiudadNac(String CiudadNac) {
        this.CiudadNac = CiudadNac;
    }

    public String getDepartamentoNac() {
        return DepartamentoNac;
    }

    public void setDepartamentoNac(String DepartamentoNac) {
        this.DepartamentoNac = DepartamentoNac;
    }

    public String getPaisNac() {
        return PaisNac;
    }

    public void setPaisNac(String PaisNac) {
        this.PaisNac = PaisNac;
    }
    
    public SelectItem[] getTipoTitulo() {
        return TipoTitulo;
    }

    public SelectItem[] getSexo() {
        return Sexo;
    }

    public SelectItem[] getTipoExperiencia() {
        return TipoExperiencia;
    }

    public SelectItem[] getTipoPonencia() {
        return TipoPonencia;
    }
    
      public String getCiudadCed() {
        return CiudadCed;
    }

    public void setCiudadCed(String CiudadCed) {
        this.CiudadCed = CiudadCed;
    }

    public String getDepartamentoCed() {
        return DepartamentoCed;
    }

    public void setDepartamentoCed(String DepartamentoCed) {
        this.DepartamentoCed = DepartamentoCed;
    }

    public String getPaisCed() {
        return PaisCed;
    }

    public void setPaisCed(String PaisCed) {
        this.PaisCed = PaisCed;
    }
    //</editor-fold>
    
    
}
